package rss.util;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Date;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

public class FeedRSS {

	private String titolo;
	private Date publishedDate;
	private String autore;
	private String descrizione;
	private String content;
	private String link;
	private int postID;
	private String immagineURL;
	Bitmap bitmap;

	public FeedRSS(String titolo, Date publishedDate, String autore, String descrizione, String content, String link, int postID) {
		super();
		this.titolo = titolo;
		this.publishedDate = publishedDate;
		this.autore = autore;
		this.descrizione = descrizione;
		this.content = content;
		this.link = link;
		this.postID = postID;
		this.immagineURL=getImmagineURLFromContent(content);
		this.bitmap=loadImage(immagineURL);
	}

	public String getAutore() {
		return autore;
	}

	public void setAutore(String autore) {
		this.autore = autore;
	}

	public String getTitolo() {
		return titolo;
	}

	public void setTitolo(String titolo) {
		this.titolo = titolo;
	}

	public Date getPublishedDate() {
		return publishedDate;
	}

	public void setPublishedDate(Date publishedDate) {
		this.publishedDate = publishedDate;
	}

	public String getDescrizione() {
		return descrizione;
	}

	public void setDescrizione(String descrizione) {
		this.descrizione = descrizione;
	}

	public String getLink() {
		return link;
	}

	public void setLink(String link) {
		this.link = link;
	}

	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}

	public int getPostID() {
		return postID;
	}

	public void setPostID(int postID) {
		this.postID = postID;

	}

	public String getImmagineURLFromContent(String content)
	{
		Document doc = Jsoup.parse(content);
		Elements images = doc.select("img");
		String imageUrl=null;
		// Then iterate
		for (Element el : images) {
			imageUrl = el.attr("src");
			// TODO: Do something with the URL
		}
		return imageUrl;
	}

	public String getImmagineURL()
	{
		return immagineURL;
	}


	public Bitmap loadImage(String image_location){
		Bitmap btm;
		URL imageURL = null;
		try {
			imageURL = new URL(image_location);
		}
		catch (MalformedURLException e) {
			e.printStackTrace();
			return null;
		}
		try {
			HttpURLConnection connection= (HttpURLConnection)imageURL.openConnection();
			connection.setDoInput(true);
			connection.connect();
			InputStream inputStream = connection.getInputStream();
			btm = BitmapFactory.decodeStream(inputStream);
			return btm;
		}
		catch (IOException e) {
			e.printStackTrace();
			return null;
		}
	}

	public Bitmap getBitmap()
	{
		return bitmap;
	}
}

